package priv.yiyuan.example.design.chain;

/**
 * 具体处理者: 数据清洗处理器
 * <p>
 * 内部使用模板方法实现清洗逻辑
 *
 * @author YiYuan
 * @data 2025/10/14
 * @apoNote
 */
public class DataCleaningProcessor extends DataProcessor {

    public DataCleaningProcessor() {
        super(new AbstractDataHandler() {

            @Override
            protected void preProcess(RawData data) {
                System.out.println(" 清理预处理: 移除多余空格。");
                data.setContent(data.getContent().trim());
            }

            @Override
            protected void doProcess(RawData data) {
                System.out.println(" 清洗核心处理: 替换敏感词。");
                String cleanedContent = data.getContent().replace("敏感词", "***");
                data.setContent(cleanedContent);
                data.addProcessingLog("数据清洗");
            }

            @Override
            protected void postProcess(RawData data) {
                System.out.println(" 清洗后处理: 转换为小写。");
                data.setContent(data.getContent().toLowerCase());
            }
        });
    }
}
